/**
 * 
 */
package at.ac.lbg.media.vis.framework.service;

import java.util.List;

import no.uib.cipr.matrix.Matrix;
import no.uib.cipr.matrix.NotConvergedException;

import at.ac.lbg.media.vis.framework.domain.ArtworkDO;
import at.ac.lbg.media.vis.framework.domain.CategoryDO;

/**
 * @author Evelyn Münster
 *
 */
public interface IMDSService {
	
    /**
     * calculates MDS coordinates on the basis of all categories.
     * @param artworks
     * @return
     * @throws NotConvergedException
     * @throws Exception
     */
	Matrix provideCoordinates(List<ArtworkDO> artworks) throws NotConvergedException, Exception;
	
	/**
	 * calculates MDS coordinates only on the basis of the given categories.
	 * @param artworks
	 * @param categories
	 * @return
	 * @throws NotConvergedException
	 * @throws Exception
	 */
	Matrix provideCoordinates(List<ArtworkDO> artworks, List<CategoryDO> categories) throws NotConvergedException, Exception;

}